﻿<?xml version="1.0" encoding="utf-8" ?>
<Config>
  <SearchAlgorithm>Minimal Criteria Search</SearchAlgorithm>
  <SelectionAlgorithm>MultipleQueueing</SelectionAlgorithm>
  <!--<MaxDegreeOfParallelism>1</MaxDegreeOfParallelism>-->
  <MaxInitializationEvaluations>10000</MaxInitializationEvaluations>
  <AgentPopulationSize>500</AgentPopulationSize>
  <MazePopulationSize>2</MazePopulationSize>
  <AgentSeedGenomeCount>500</AgentSeedGenomeCount>
  <MazeSeedGenomeCount>1</MazeSeedGenomeCount>
  <AgentNumSpecies>15</AgentNumSpecies>
  <MazeNumSpecies>2</MazeNumSpecies>
  <AgentSpecieSizeFixed>True</AgentSpecieSizeFixed>
  <MazeSpecieSizeFixed>True</MazeSpecieSizeFixed>
  <Activation>
    <Scheme>Acyclic</Scheme>
  </Activation>
  <GenomeConfig>
    <InitialConnectionProportion>1</InitialConnectionProportion>
    <WeightMutationProbability>0.6</WeightMutationProbability>
    <AddConnnectionProbability>0.1</AddConnnectionProbability>
    <AddNodeProbability>0.01</AddNodeProbability>
    <DeleteConnectionProbability>0.001</DeleteConnectionProbability>
    <ConnectionWeightRange>5</ConnectionWeightRange>
  </GenomeConfig>
  <MazeGenomeConfig>
    <MutateWallStartLocationProbability>0.05</MutateWallStartLocationProbability>
    <MutatePassageStartLocationProbability>0.01</MutatePassageStartLocationProbability>
    <MutateAddWallProbability>0.9</MutateAddWallProbability>
    <PerturbanceMagnitude>0.1</PerturbanceMagnitude>
  </MazeGenomeConfig>
  <BehaviorConfig>
    <BehaviorCharacterization>EndPoint</BehaviorCharacterization>
  </BehaviorConfig>
  <NavigatorOffspringBatchSize>50</NavigatorOffspringBatchSize>
  <MazeOffspringBatchSize>10</MazeOffspringBatchSize>  
  <MaxEvaluations>100000000</MaxEvaluations>
  <MaxTimesteps>600</MaxTimesteps>
  <MinSuccessDistance>5</MinSuccessDistance>
  <MazeHeight>10</MazeHeight>
  <MazeWidth>10</MazeWidth>
  <MazeScaleMultiplier>32</MazeScaleMultiplier>
  <NumMazesSolvedCriteria>1</NumMazesSolvedCriteria>
  <NumAgentsSolvedCriteria>1</NumAgentsSolvedCriteria>
  <NumAgentsFailedCriteria>0</NumAgentsFailedCriteria>
  <InitializationAlgorithmConfig>
    <SearchAlgorithm>Novelty Search</SearchAlgorithm>
    <SelectionAlgorithm>Steady State</SelectionAlgorithm>
    <!--<SearchAlgorithm>Fitness</SearchAlgorithm>
    <SelectionAlgorithm>Generational</SelectionAlgorithm>-->
    <PopulationSize>250</PopulationSize>
    <SpecieCount>15</SpecieCount>
    <OffspringBatchSize>20</OffspringBatchSize>
    <PopulationEvaluationFrequency>30</PopulationEvaluationFrequency>
    <ComplexityRegulationStrategy>Relative</ComplexityRegulationStrategy>
    <ComplexityThreshold>30</ComplexityThreshold>
    <DecodeGenomesToXml>false</DecodeGenomesToXml>
    <GenomeConfig>
      <InitialConnectionProportion>1</InitialConnectionProportion>
      <WeightMutationProbability>0.6</WeightMutationProbability>
      <AddConnnectionProbability>0.9</AddConnnectionProbability>
      <AddNodeProbability>0.9</AddNodeProbability>
      <DeleteConnectionProbability>0.001</DeleteConnectionProbability>
      <ConnectionWeightRange>5</ConnectionWeightRange>
    </GenomeConfig>
    <InitBehaviorConfig>
      <BehaviorCharacterization>End Point</BehaviorCharacterization>
    </InitBehaviorConfig>
    <NearestNeighbors>15</NearestNeighbors>
    <NoveltyConfig>
      <ArchiveAdditionThreshold>6</ArchiveAdditionThreshold>
      <ArchiveThresholdDecreaseMultiplier>0.95</ArchiveThresholdDecreaseMultiplier>
      <ArchiveThresholdIncreaseMultiplier>1.3</ArchiveThresholdIncreaseMultiplier>
      <MaxGenerationalArchiveAddition>5</MaxGenerationalArchiveAddition>
      <MaxGenerationsWithoutArchiveAddition>10</MaxGenerationsWithoutArchiveAddition>
    </NoveltyConfig>
  </InitializationAlgorithmConfig>
  <PopulationLoggingBatchInterval>10</PopulationLoggingBatchInterval>
  <NavigatorLoggingConfig>
    <Type>Evolution</Type>
    <Destination>File</Destination>
    <!--<LogFile>C:\\Users\\Jonathan\\Documents\\school\\Jonathan\\Graduate\\PhD\\Minimal Criteria Search\ExperimentData\\NavigatorEvolutionData.csv</LogFile>-->
    <LogFile>F:\\User Data\\Jonathan\\Documents\\school\\Jonathan\\Graduate\\PhD\\Minimal Criteria Search\ExperimentData\\NavigatorEvolutionData.csv</LogFile>
  </NavigatorLoggingConfig>
  <NavigatorLoggingConfig>
    <Type>PopulationGenomes</Type>
    <Destination>File</Destination>
    <!--<LogFile>C:\\Users\\Jonathan\\Documents\\school\\Jonathan\\Graduate\\PhD\\Minimal Criteria Search\ExperimentData\\NavigatorPopulationGenomesData.csv</LogFile>-->
    <LogFile>F:\\User Data\\Jonathan\\Documents\\school\\Jonathan\\Graduate\\PhD\\Minimal Criteria Search\ExperimentData\\NavigatorPopulationGenomesData.csv</LogFile>
  </NavigatorLoggingConfig>
  <MazeLoggingConfig>
    <Type>Evolution</Type>
    <Destination>File</Destination>
    <!--<LogFile>C:\\Users\\Jonathan\\Documents\\school\\Jonathan\\Graduate\\PhD\\Minimal Criteria Search\ExperimentData\\MazeEvolutionData.csv</LogFile>-->
    <LogFile>F:\\User Data\\Jonathan\\Documents\\school\\Jonathan\\Graduate\\PhD\\Minimal Criteria Search\ExperimentData\\MazeEvolutionData.csv</LogFile>
  </MazeLoggingConfig>
  <MazeLoggingConfig>
    <Type>PopulationGenomes</Type>
    <Destination>File</Destination>
    <!--<LogFile>C:\\Users\\Jonathan\\Documents\\school\\Jonathan\\Graduate\\PhD\\Minimal Criteria Search\ExperimentData\\MazePopulationGenomesData.csv</LogFile>-->
    <LogFile>F:\\User Data\\Jonathan\\Documents\\school\\Jonathan\\Graduate\\PhD\\Minimal Criteria Search\ExperimentData\\MazePopulationGenomesData.csv</LogFile>
    </MazeLoggingConfig>
  <Description>
    Coevolutionary MCS Maze navigation experiment, evolving both maze navigators and the mazes themselves.
  </Description>
</Config>